The invention relates generally to encoding using codes that satisfy run-digital-sum constraints.
Before recording or transmission, data are typically encoded for error protection and also for modulation, to preserve signal content against corruption by noise, fading and other interference associated with a communications channel in the recording or transmission system. The modulation encoding is also performed to preserve signal content that might otherwise be filtered out by circuitry in the communications channel. For example, a preamplifier in the circuitry acts essentially as a high pass filter, and filters out much of the low frequency content of the information signal. In certain recording systems, such as, for example, perpendicular recording systems, there is significant energy in the low frequency portion of the information signal. Accordingly, the filtering out of the low frequency content would result in performance degradation. The data are thus encoded to preserve the information in the low frequency content. One example of encoding to preserve the information in the low frequency content is running-digital-sum (“RDS”) encoding, which constrains the direct-current (“DC”) content of the signal to be transmitted (or recorded). Constraining the DC content of the transmission signal essentially means shifting the low frequency content of the information signal to a higher frequency spectrum so that the information in the low frequency content of the original data signal does not get filtered out at the receiving end.
Typically, the user data are encoded to produce RDS encoded data and the RDS encoded data are further encoded using an error correction code (ECC) to produce error correction code words. The ECC can be a traditional Reed-Solomon (RS) code, an iterative code like a low-density parity-check (LDPC) code, a combination or concatenation of the RS and LDPC codes or, in general, any block or convolutional code or combinations or concatenations thereof.
Before entering the communications channel, the RDS and ECC encoded data and the parity bits are provided to a precoder, which translates them into bit sequences that are optimized for transmission and detection. The precoding, however, essentially disrupts the RDS constraints, and there is thus a trade-off between the optimization for transmission/detection and the encoding to preserve signal content through the channel circuitry.
Further, certain bit patterns, for example, long runs without transitions, may adversely affect timing recovery, while other patterns may affect signal to noise ratios, and so forth. Accordingly, the modulation codes generally include run length constraints, and are often also referred to as run length limited (“RLL”) codes.
High rate codes, that is, codes that produce a code word with a small increase in overall bit count, are desirable for their efficiency. To avoid adversely affecting the rate of transmission, it is desirable to encode long data sequences with high rate codes. However, there is a trade off between efficiency and the complexities associated with manipulating the large sequence of data bits into correspondingly wide code words. Further, code complexities may increase when run length constraints must be considered. A system that efficiently encodes data using a high rate RLL code is described in U.S. Pat. No. 6,839,044, which is hereby incorporated herein in its entirety by reference.